package com.reservation.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Bookings implements Serializable {

    private static final long serialVersionUID = 1L;

    // 预订ID
    private Long id;

    // 客户ID (关联用户表)
    private Long customerId;

    // 会议室ID (关联会议室表)
    private Long roomId;

    // 预订订单编号（随机生成订单编号十位数：如#1234567890）
    private String orderId;

    // 预订开始时间 (精确到小时)
    private LocalDateTime startTime;

    // 预订结束时间 (精确到小时)
    private LocalDateTime endTime;

    // 预订时长(小时)
    private BigDecimal durationHours;

    // 订单总价
    private BigDecimal totalPrice;

    // 订单状态
    // 0:预约成功已确认 1:待支付 2:取消申请中 3:取消待确认
    // 4:取消申请被拒绝 5:已取消并退款 6:已过期 7:已完成 8:正在使用
    private Integer status;

    // 支付截止时间
    private LocalDateTime paymentDeadline;

    // 支付时间
    private LocalDateTime paidAt;

    // 支付方式: 1：支付宝，2：微信
    private Integer paidMethod;

    // 订单创建时间
    private LocalDateTime createTime;

    // 订单更新时间
    private LocalDateTime updateTime;
}
